Alteryxで1年間のカレンダーを作る
こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。
先日公開したネタ記事につづき、今回もネタ記事です。今回はAlteryxで1年間のカレンダーを作ってみます。
1年間のカレンダーを作る
今回作成するワークフローはこちら。
Text Inputツールで、1年の初めと終わりの日付を用意します。「First day」列に「2019-01-01」、「Last day」列に「2019-12-31」と入力します。
Generate Rowsツールを使用して、「Date」列をDate型で新しく作成します。「First day」列の日付から「Last day」列の日付まで1日ずつ足していきます。
ループ条件の設定はこちら。
- Initialization Ecpression: [First day]
- Condition Expression: Date <= [Last day]
- Loop Expression: DateTimeAdd([Date],1,"Days")
DateTimeツールを使用して、「Date」列から月を抜き出します。新しく作成する列は「Month」列とし、Custom
を指定してMonth
を入力します。これにより、「January」というように月が出力されます。
Formulaツールを使用して、曜日を出力する「Day of the week」列と日にちを出力する「Day」列を作成します。
「Day of the week」列の設定はこちら。
DateTimeFormat([Date],"%A")
「Day」列の設定はこちら。
DateTimeDay([Date])
Multi-Row Formulaツールを使用して、「Group」列をInt32型で作成します。「Group」列は、日曜日から土曜日までを同じグループにするように設定します。
Expressionの設定はこちら。
iif([Day of the week] == "Sunday", [Row-1:Group] + 1, [Row-1:Group])
この時点でのデータはこちら。この先は赤枠部分の「Month」列「Day of the week」列「Day」列「Group」列を使用してカレンダーを作っていきます。
Cross Tabツールを使用して、データの持ち方を整えます。月と週でグループ化し、曜日を列名に、日にちをデータにします。
設定はこちら。
- Group Data by these Values: 「Month」列、「Group」列
- New Column Headers: 「Day of the week」列
- Values for New Columns: 「Day」列
データは以下のようになっています。データの表示順序がばらばらになっています。
データの表示順序を整えるため、Record IDツールとUniqueツールを使用します。
Record IDツールでIDを割り当て、Uniqueツールで各月で1つずつデータを残します。
2つのデータを結合します。あわせて不要な列の削除と列の並べ替えを行います。
結合した結果はこちら。それぞれの月にIDが割り当てられています。
Sortツールを使用して、「RecordID」列と「Sunday」列を昇順(Ascending)で並べ替えます。
Selectツールを使用して「RecordID」列を削除し、結果を確認して完成です。
最後に
今回はAlteryxで1年間のカレンダーを作ってみました。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。